package com.edt.ichannel.api.dao;

import com.edt.ichannel.api.entiy.local.OrderCredit;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface OrderCreditDao {

    /**
     * 批量添加
     * @param orderCredits
     *             要添加的数据集合
     * @author 孙梁
     * 2018/6/13 10:57
     */
    void saveList(List<OrderCredit> orderCredits);

    /**
     * 更新订单中的发展奖和佣金两个字段
     * @param orderCredit
     *             同步过来的首充数据
     * @author 孙梁
     * 2018/6/13 10:57
     */
    void upadateOrderCteditMoney(OrderCredit orderCredit);

    /**
     * 根据批次号查询首充订单
     * @param batchCode
     *             批次号
     * @return java.util.List<com.edt.ichannel.api.entiy.local.OrderCredit>
     *              结果集
     * @author 孙梁
     * 2018/6/13 10:58
     */
    List<OrderCredit> selectByBatch(String batchCode);

    /**
     * 根据订单号查询首充订单
     * @param orderCode
     *             订单号
     * @return com.edt.ichannel.api.entiy.local.OrderCredit
     *              查询结果
     * @author 孙梁
     * 2018/6/13 10:58
     */
    OrderCredit selectByOrderCode(String orderCode);

    /**
     * 批量跟新首充时间
     * @param orderCredits
     *             要跟新的数据集合
     * @author 孙梁
     * 2018/6/13 10:59
     */
    void updateFirstDateList(List<OrderCredit> orderCredits);


    /**
     * 更新首充表佣金
     * @param orderCredit
     *             计算佣金后的数据
     * @author 孙梁
     * 2018/6/13 11:01
     */
    void upadateOrderCteditCommissionMoney(OrderCredit orderCredit);

    /**
     * 更新首充表发展奖
     * @param orderCredit
     *             计算发展奖后的数据
     * @author 孙梁
     * 2018/6/13 11:01
     */
    void upadateOrderCteditBonusMoney(OrderCredit orderCredit);

    /**
     * 查询需要佣金的首充数据
     * @param batchCode
     *             批次号为空则查询所有
     * @return java.util.List<com.edt.ichannel.api.entiy.local.OrderCredit>
     *              结果集
     * @author 孙梁
     * 2018/6/13 11:17
     */
    List<OrderCredit> selectNeedComputCommission(String batchCode);

    /**
     * 查询需要发展奖的首充数据
     * @param batchCode
     *             批次号为空则查询所有
     * @return java.util.List<com.edt.ichannel.api.entiy.local.OrderCredit>
     *              结果集
     * @author 孙梁
     * 2018/6/13 11:17
     */
    List<OrderCredit> selectNeedComputBonus(String batchCode);


    void addCommissionMoney(@Param("orderCode") String orderCode, @Param("commissionMoney") Double commissionMoney);
}
